<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="generator" content="Doxygen 1.8.13">
<title>OpenCV:在Windows中安装</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d9/df8/tutorial_root.html">OpenCV Tutorials</a></li><li class="navelem"><a class="el" href="../../df/d65/tutorial_table_of_content_introduction.html">Introduction to OpenCV</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">在Windows中安装</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>上一个教程:</b> <a class="el" href="../../d7/d16/tutorial_linux_eclipse.html">Using OpenCV with Eclipse (plugin CDT)</a></p>
<p><b>下一个教程:</b> <a class="el" href="../../dd/d6e/tutorial_windows_visual_studio_opencv.html">How to build applications with OpenCV inside the "Microsoft Visual Studio"</a></p>
<table class="doxtable">
<tr>
<th align="right"></th><th align="left"></th></tr>
<tr>
<td align="right">原作者</td><td align="left">Bernát Gábor</td></tr>
<tr>
<td align="right">兼容性</td><td align="left">OpenCV &gt;= 3.0</td></tr>
</table>
<dl class="section warning"><dt>警告</dt><dd>本教程可能包含过时的信息.</dd></dl>
<p>这里的描述是在Windows7SP1上测试的.不过,它也应该适用于任何其他相对现代的Windows操作系统版本.如果您在执行以下步骤后遇到错误,请随时通过我们的联系方式与我们联系<a href="https://forum.opencv.org">OpenCV问答;论坛</a>. 我们会尽力帮助你的.</p>
<dl class="section note"><dt>Note</dt><dd>要使用OpenCV库,有两个选项:<a class="el" href="../../d3/d52/tutorial_windows_install.html#tutorial_windows_install_prebuilt">Installation by Using the Pre-built Libraries </a>或<a class="el" href="../../d3/d52/tutorial_windows_install.html#tutorial_windows_install_build">Installation by Making Your Own Libraries from the Source Files </a>. 虽然第一个更容易完成,但它只适用于使用最新的Microsoft Visual Studio IDE进行编码,并且不利用我们集成到库中的最先进技术_Windows_Install_Prebuild:</dd></dl>
<h1><a class="anchor" id="tutorial_windows_install_prebuilt"></a>使用预建库安装</h1>
<ol type="1">
<li>启动所选的web浏览器并转到<a href="http://sourceforge.net/projects/opencvlibrary/files/opencv-win/">源代码页</a>.</li>
<li>选择要使用的版本并下载.</li>
<li>确保你有管理员权限.打开自解压存档.</li>
<li><p class="startli">您可以在所选路径检查安装,如下所示.</p>
<div class="image">
<img src="../../OpenCV_Install_Directory.png" alt="OpenCV_Install_Directory.png">
</div>
</li>
<li>要完成安装,请转到<a class="el" href="../../d3/d52/tutorial_windows_install.html#tutorial_windows_install_path">Set the OpenCV environment variable and add it to the systems path </a>部分.</li>
</ol>
<h1><a class="anchor" id="tutorial_windows_gitbash_build"></a>使用git bash安装(版本&gt=2.14.1)和cmake(版本&gt=3.9.1)</h1>
<ol type="1">
<li>你必须下载<a href="https://cmake.org">cmake (version &gt;=3.9.1)</a>然后安装.安装期间必须将cmake添加到路径变量</li>
<li>您必须安装<a href="https://git-for-windows.github.io/">git-bash (version&gt;=2.14.1)</a>. 安装期间不要将git添加到PATH变量</li>
<li>运行git bash.观察命令行窗口.假设您想在c:/lib中构建opencv和 opencv_contrib </li>
<li>在 git 命令行中输入以下命令(如果文件夹不存在):<div class="fragment"><div class="line">mkdir /c/lib</div><div class="line">cd /c/lib</div></div><!-- fragment --></li>
<li>在c:/lib中保存名为installOCV.sh的脚本<div class="fragment"><div class="line">#!/bin/bash -e</div><div class="line">myRepo=$(pwd)</div><div class="line">CMAKE_GENERATOR_OPTIONS=-G&quot;Visual Studio 16 2019&quot;</div><div class="line">#CMAKE_GENERATOR_OPTIONS=-G&quot;Visual Studio 15 2017 Win64&quot;</div><div class="line">#CMAKE_GENERATOR_OPTIONS=(-G&quot;Visual Studio 16 2019&quot; -A x64)  # CMake 3.14+ is required</div><div class="line">if [  ! -d &quot;$myRepo/opencv&quot;  ]; then</div><div class="line">    echo &quot;cloning opencv&quot;</div><div class="line">    git clone https://github.com/opencv/opencv.git</div><div class="line">else</div><div class="line">    cd opencv</div><div class="line">    git pull --rebase</div><div class="line">    cd ..</div><div class="line">fi</div><div class="line">if [  ! -d &quot;$myRepo/opencv_contrib&quot;  ]; then</div><div class="line">    echo &quot;cloning opencv_contrib&quot;</div><div class="line">    git clone https://github.com/opencv/opencv_contrib.git</div><div class="line">else</div><div class="line">    cd opencv_contrib</div><div class="line">    git pull --rebase</div><div class="line">    cd ..</div><div class="line">fi</div><div class="line">RepoSource=opencv</div><div class="line">mkdir -p build_opencv</div><div class="line">pushd build_opencv</div><div class="line">CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF  -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)</div><div class="line">set -x</div><div class="line">cmake &quot;${CMAKE_GENERATOR_OPTIONS[@]}&quot; &quot;${CMAKE_OPTIONS[@]}&quot; -DOPENCV_EXTRA_MODULES_PATH=&quot;$myRepo&quot;/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX=&quot;$myRepo/install/$RepoSource&quot; &quot;$myRepo/$RepoSource&quot;</div><div class="line">echo &quot;************************* $Source_DIR --&gt;debug&quot;</div><div class="line">cmake --build .  --config debug</div><div class="line">echo &quot;************************* $Source_DIR --&gt;release&quot;</div><div class="line">cmake --build .  --config release</div><div class="line">cmake --build .  --target install --config release</div><div class="line">cmake --build .  --target install --config debug</div><div class="line">popd</div></div><!-- fragment -->在这个脚本中,我假设您使用64位的VS 2015<div class="fragment"><div class="line">CMAKE_GENERATOR_OPTIONS=-G&quot;Visual Studio 14 2015 Win64&quot;</div></div><!-- fragment -->opencv将安装在c:/lib/install/opencv中<div class="fragment"><div class="line">-DCMAKE_INSTALL_PREFIX=&quot;$myRepo/install/$RepoSource&quot;</div></div><!-- fragment -->没有性能测试,没有测试,没有文档,没有CUDA,没有例子<div class="fragment"><div class="line">CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF)</div></div><!-- fragment --></li>
<li>在git命令行中输入以下命令:<div class="fragment"><div class="line">./installOCV.sh</div></div><!-- fragment --></li>
<li>喝一两杯咖啡...opencv准备就绪:仅此而已！</li>
<li>下次运行此脚本时,将更新并重新生成opencv和opencv_contrib</li>
</ol>
<h1><a class="anchor" id="tutorial_windows_install_build"></a>通过从源文件创建自己的库进行安装</h1>
<p>您可以在以下视频中找到本教程的内容:<a href="https://www.youtube.com/watch?v=NnovZ1cTlMs">Part 1</a>和<a href="https://www.youtube.com/watch?v=qGNWMcfWwPU">Part 2</a>,在YouTube上主持.(有梯子的同学可以搬下)</p>
<div align="center"><iframe title="Video" width="560" height="349" src="https://www.youtube.com/embed/NnovZ1cTlMs?rel=0" frameborder="0" align="middle" allowfullscreen=""></iframe></div> <div align="center"><iframe title="Video" width="560" height="349" src="https://www.youtube.com/embed/qGNWMcfWwPU?rel=0" frameborder="0" align="middle" allowfullscreen=""></iframe></div><p><b>warning</b></p>
<p>以上这些视频早已过时,包含不准确的信息.请小心,因为这些视频中描述的解决方案不再受支持,甚至可能破坏您的安装.</p>
<p>如果您正在构建自己的库,您可以从我们的<a href="https://github.com/opencv/opencv.git">Git repository</a>.</p>
<p>从头开始构建OpenCV库需要预先安装几个工具:</p>
<ul>
<li>一个IDE的选择(最好),或只是一个CC++编译器,将真正使二进制文件.在这里我们将使用<a href="https://www.microsoft.com/visualstudio/en-us">Microsoft Visual Studio</a>. 但是,您可以使用任何其他具有有效CC++编译器的IDE.</li>
<li><a href="http://www.cmake.org/cmake/resources/software.html">CMake</a>,这是一个从OpenCV源文件生成项目文件(用于所选IDE)的简洁工具.它还允许轻松配置OpenCV构建文件,以便生成完全符合您需要的二进制文件.</li>
<li>Git获取OpenCV源文件.一个很好的工具就是<a href="http://code.google.com/p/tortoisegit/wiki/Download">TortoiseGit</a>. 或者,您可以从我们的网站下载源文件的存档版本<a href="http://sourceforge.net/projects/opencvlibrary/files/opencv-win/">源代码页</a></li>
</ul>
<p>OpenCV可能有多种风格.有一个“核心”部分将自己工作.尽管如此,仍然有一些由第三方制作的工具库,它们提供OpenCV可以利用的服务.这些将在许多方面提高其能力.为了使用它们中的任何一个,您需要下载它们并将其安装到您的系统上.</p>
<ul>
<li>这个<a href="http://www.python.org/downloads/">Python库</a>是构建<em>Python接口</em>OpenCV.现在使用这个版本<code>2.7.{x}</code>. 如果您想构建<em>OpenCV文档</em>.</li>
<li><a href="http://numpy.scipy.org/">Numpy</a>是Python的科学计算包.所需的<em>Python接口</em>.</li>
<li><a href="http://threadingbuildingblocks.org/file.php?fid=77">英特尔线程构建块(<em>TBB</em>)</a>在OpenCV内部用于并行代码段.使用它可以确保OpenCV库能够充分利用系统CPU中的所有核心.</li>
<li><a href="http://software.intel.com/en-us/articles/intel-ipp/">英特尔集成性能原件(<em>IPP</em>)</a>可以用来提高OpenCV库的颜色转换、Haar训练和DFT函数的性能.小心,因为这不是免费服务.</li>
<li>OpenCV通过使用<a href="http://qt.nokia.com/downloads">Qt框架</a>. 要快速了解它所提供的内容,请查看文档<em>highgui</em>模块,在<em>Qt新功能</em>部分.需要4.6或更高版本的框架.</li>
<li><a href="http://eigen.tuxfamily.org/index.php?title=Main_Page#Download">Eigen</a>是一个线性代数的C++模板库.</li>
<li>最新的<a href="http://developer.nvidia.com/cuda-downloads">CUDA工具包</a>允许你使用GPU内部的电源.这将大大提高某些算法(例如HOG描述符)的性能.让越来越多的算法在gpu上工作是OpenCV团队不断努力的结果.</li>
<li><a href="http://www.openexr.com/downloads.html">OpenEXR</a>库需要源文件才能使用这种高动态范围(HDR)图像文件格式.</li>
<li>OpenNI框架包含一组开源api,通过诸如语音命令识别、手势和身体运动跟踪等方法为与设备的自然交互提供支持.可以找到预构建的二进制文件<a href="http://structure.io/openni">在这里</a>. 的源代码<a href="https://github.com/OpenNI/OpenNI">OpenNI</a>和<a href="https://github.com/OpenNI/OpenNI2">OpenNI2</a>也可以在Github上使用.</li>
<li><a href="http://www.doxygen.nl">编程辅助工具</a>是一个文档生成器,是实际创建<em>OpenCV文档</em>.</li>
</ul>
<p>现在,我们将描述完整构建(使用上述所有框架、工具和库)要遵循的步骤.如果您不需要这些支持,您可以自由地跳过本节.</p>
<h3>Building the library</h3>
<ol type="1">
<li>确保您有一个使用有效编译器的IDE.如果是microsoftvisualstudio,只需安装它并确保它启动.</li>
<li>安装<a href="http://www.cmake.org/cmake/resources/software.html">CMake</a>. 只需按照向导操作,无需将其添加到路径中.默认安装选项正常.</li>
<li>从its下载并安装msysgit的最新版本<a href="http://code.google.com/p/msysgit/downloads/list">官方网站</a>. 还有可移植版本,您只需解包即可访问Git的控制台版本.假设对我们中的一些人来说这已经足够了.</li>
<li>安装<a href="http://code.google.com/p/tortoisegit/wiki/Download">TortoiseGit</a>. 根据您使用的操作系统类型选择32位或64位版本.安装时,找到msysgit(如果它没有自动完成).跟随向导&ndash;默认选项在大多数情况下是可以的.</li>
<li>在文件系统中选择一个目录,从中下载OpenCV库.例如,我建议创建一个具有短路径和没有特殊字符的新路径<code>D:/OpenCV</code>. 对于本教程,我建议您这样做.如果你走自己的路,知道自己在做什么&ndash;没关系.<ol type="a">
<li>将存储库克隆到所选目录.点击后<em>Clone</em>按钮,将出现一个窗口,您可以从中选择要下载源文件的存储库(<a href="https://github.com/opencv/opencv.git">https://github.com/opencv/opencv.git</a>)去哪个目录(<code>D:/OpenCV</code>).</li>
<li>按下OK按钮并耐心等待,因为存储库的下载量相当大.这将需要一些时间取决于你的互联网连接.</li>
</ol>
</li>
<li>在本节中,我将介绍如何安装第三方库.<ol type="a">
<li>下载<a href="http://www.python.org/downloads/">Python库</a>并使用默认选项进行安装.您将需要一些其他python扩展.幸运的是,通过一个叫做<a href="http://pypi.python.org/pypi/setuptools#downloads">安装工具</a>. 下载并重新安装.</li>
<li>安装Numpy最简单的方法就是从<a href="http://sourceforge.net/projects/numpy/files/NumPy/">来源</a>. 确保下载并安装的二进制文件与python版本完全一致(对于python版本也是如此)<code>2.7</code>).</li>
<li><p class="startli">对于<a href="http://threadingbuildingblocks.org/file.php?fid=77">英特尔线程构建块(<em>TBB</em>)</a>下载源文件并将其解压缩到系统的目录中.例如,让我们有<code>D:/OpenCV/dep</code>. 用于安装<a href="http://software.intel.com/en-us/articles/intel-ipp/">英特尔集成性能原件(<em>IPP</em>)</a>故事是一样的.对于提取档案,我建议使用<a href="http://www.7-zip.org/">7-Zip</a>应用程序.</p>
<div class="image">
<img src="../../IntelTBB.png" alt="IntelTBB.png">
</div>
</li>
<li>以防<a href="http://eigen.tuxfamily.org/index.php?title=Main_Page#Download">Eigen</a>library又是一个下载和解压的案例<code>D:/OpenCV/dep</code>目录.</li>
<li>同上<a href="http://www.openexr.com/downloads.html">OpenEXR</a>.</li>
<li>对于<a href="http://www.openni.org/">OpenNI框架</a>您需要同时安装<a href="http://www.openni.org/downloadfiles/opennimodules/openni-binaries/21-stable">开发-建造</a>以及<a href="http://www.openni.org/downloadfiles/opennimodules/openni-compliant-hardware-binaries/32-stable">传感器模块</a>.</li>
<li>对于CUDA,您还需要两个模块:最新的<a href="http://developer.nvidia.com/cuda-downloads">CUDA工具包</a>以及<em>CUDA Tools SDK</em>. 使用<em>完成</em>选项,根据您的操作系统使用32位或64位设置.</li>
<li><p class="startli">对于Qt框架,您需要自己构建二进制文件(除非您使用32位编译器的microsoftvisualstudio2008).要做到这一点,请转到<a href="http://qt.nokia.com/downloads">Qt下载</a>第页.下载源文件(不是安装程序！！！):</p>
<div class="image">
<img src="../../qtDownloadThisPackage.png" alt="qtDownloadThisPackage.png">
</div>
<p class="startli">将其解压到一个简短的目录中,如<code>D:/OpenCV/dep/qt/</code>. 然后你需要建造它.启动一个<em>Visual</em> <em>Studio</em> <em>命令</em> <em>提示</em>(<em>2010</em>)使用“开始”菜单搜索(或在“开始”菜单中导航所有程序&ndash&gt;Microsoft Visual Studio 2010&ndash&gt;Visual Studio工具&ndash&gt;Visual Studio命令提示符(2010)).</p>
<div class="image">
<img src="../../visualstudiocommandprompt.jpg" alt="visualstudiocommandprompt.jpg">
</div>
<p class="startli">现在导航到提取的文件夹并使用这个控制台窗口在其中输入.你应该有一个包含如下文件的文件夹<em>安装</em>,<em>Make</em>等等.使用<em>目录</em>命令列出当前目录中的文件.到达此目录后,输入以下命令:</p><div class="fragment"><div class="line">configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools</div><div class="line">              -no-qt3support -no-multimedia -no-ltcg</div></div><!-- fragment --><p>完成这项工作大约需要10-20分钟.然后输入下一个需要更长时间的命令(很容易就需要一个多小时):</p><div class="fragment"><div class="line">nmake</div></div><!-- fragment --><p>在此之后,在Windows 7上使用以下命令设置Qt环境变量:</p><div class="fragment"><div class="line">setx -m QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3</div></div><!-- fragment --><p>另外,使用<a href="http://www.redfernplace.com/software-projects/patheditor/">路径编辑器</a>. 在我们的情况下,这是<code>D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin</code>.</p>
<dl class="section note"><dt>Note</dt><dd>如果您计划进行Qt应用程序开发,也可以在此时安装<em>Qt Visual Studio加载项</em>. 在此之后,您可以在不使用<em>Qt Creator</em>. 一切都很好地集成到visualstudio中.</dd></dl>
</li>
</ol>
</li>
<li><p class="startli">现在开始<em>CMake(CMake gui)</em>. 您可以再次在“开始”菜单搜索中输入它或从“所有程序”中获取它&ndash&gt;CMake 2.8&ndash&gt;CMake(CMake gui).首先,为OpenCV库的源文件选择目录(1).然后,指定一个为OpenCV(2)构建二进制文件的目录.</p>
<div class="image">
<img src="../../CMakeSelectBin.jpg" alt="CMakeSelectBin.jpg">
</div>
<p class="startli">按Configure按钮指定编译器(和<em>IDE</em>)你想用的.请注意,在这种情况下,您可以选择不同的编译器来生成64位或32位库.选择在应用程序开发中使用的一个.</p>
<div class="image">
<img src="../../CMake_Configure_Windows.jpg" alt="CMake_Configure_Windows.jpg">
</div>
<p class="startli">CMake将启动并基于您的系统变量尝试自动定位尽可能多的包.您可以使用&ndash;在中修改要用于生成的包&gt;带有X个菜单点(其中<em>X</em>是软件包的缩写).以下是您可以打开或关闭的当前软件包列表:</p>
<div class="image">
<img src="../../CMakeBuildWithWindowsGUI.jpg" alt="CMakeBuildWithWindowsGUI.jpg">
</div>
<p class="startli">选择要使用的所有软件包,然后再次按<em>配置</em>按钮.为了更容易地概述构建选项,请确保<em>分组</em>二进制目录选择下的选项处于启用状态.对于某些包,CMake可能找不到所有必需的文件或目录.在这种情况下,CMake将在其输出窗口(位于GUI底部)中抛出一个错误,并将其字段值设置为notfound常量.例如:</p>
<div class="image">
<img src="../../CMakePackageNotFoundWindows.jpg" alt="CMakePackageNotFoundWindows.jpg">
</div>
<div class="image">
<img src="../../CMakeOutputPackageNotFound.jpg" alt="CMakeOutputPackageNotFound.jpg">
</div>
<p class="startli">为此,您需要手动设置查询的目录或文件路径.在这次新闻发布会之后<em>配置</em>按钮查看您输入的值是否被接受.这样做,直到所有条目都正常,并且您在GUI的字段/值或输出部分看不到错误为止.现在我想强调一个您肯定会喜欢的选项:启用&ndash&gt;启用\解决方案\文件夹.OpenCV将创建许多项目,启用此选项将确保它们在<em>解决方案管理器</em>. 如果你问我的话,这是一个必备功能.</p>
<div class="image">
<img src="../../CMakeBuildOptionsOpenCV.jpg" alt="CMakeBuildOptionsOpenCV.jpg">
</div>
<p class="startli">此外,还需要选择要构建OpenCV的哪一部分.</p><ul>
<li><em>生成文档</em>-&gt;它创建了两个用于构建OpenCV文档的项目(将有一个单独的项目用于构建HTML和PDF文件).请注意,这些不是与解决方案一起构建的.为此,需要对这些对象执行显式的build project命令.</li>
<li><em>构建示例</em>-&gt;OpenCV附带了许多示例应用程序,您可以从中了解大多数库功能.如果OpenCV在您的计算机上完全可用,那么这也很容易尝试.</li>
<li><em>BUILD_PACKAGE</em>-&gt;在版本2.3之前,您可以构建一个将构建OpenCV安装程序的项目.有了它,您可以轻松地在其他系统上安装OpenCV风格.对于OpenCV的最新源文件,它生成了一个新项目,该项目只需使用OpenCV源文件创建一个zip存档.</li>
<li><em>生成共享库</em>-&gt; 通过此选项,您可以控制生成DLL文件(启用时)或静态库文件(*.lib).</li>
<li><em>内部版本测试</em>-&gt; OpenCV的每个模块都分配了一个测试项目.构建这些测试项目也是一种很好的尝试方式,模块在您的系统上也能像预期的那样工作.</li>
<li><em>构建性能测试</em>-&gt; 还有许多OpenCV函数的性能测试.如果您关心性能,请构建它们并运行.</li>
<li><em>BUILD_opencv_python</em>-&gt;不言自明.从Python语言创建二进制文件以使用OpenCV.</li>
<li><em>BUILD_opencv_world</em>-&gt;生成一个“opencv_world”二进制文件(一个共享或静态库,取决于<em>BUILD_SHARED_LIBS</em>)包括所有模块,而不是单独的二进制文件集合,每个模块一个二进制文件.</li>
</ul>
<p class="startli">再按一下按钮<em>配置</em>按钮并确保没有报告错误.如果是这种情况,您可以告诉CMake通过按<em>Generate</em>按钮.转到build目录并打开创建的<b>OpenCV</b>解决方案.根据您选择的上述选项的多少,解决方案可能包含相当多的项目,因此在启动时对IDE要宽容.现在您需要同时构建<em>释放</em>以及<em>调试</em>二进制文件.在为其中一个生成后,使用IDE上的下拉菜单更改为另一个.</p>
<div class="image">
<img src="../../ChangeBuildVisualStudio.jpg" alt="ChangeBuildVisualStudio.jpg">
</div>
<p class="startli">最后,您可以观察bin目录中构建的二进制文件:</p>
<div class="image">
<img src="../../OpenCVBuildResultWindows.jpg" alt="OpenCVBuildResultWindows.jpg">
</div>
<p class="startli">对于文档,您需要在<em>doxygen</em>HTML文档的项目.它会召唤<em>Doxygen</em>做所有艰苦的工作.您可以在<code>build/doc/doxygen/html</code>.</p>
<p class="startli">要将头文件和二进制文件(您将在自己的项目中使用)收集到一个单独的目录中(类似于预构建的二进制文件的传送方式),您需要显式地构建<em>安装</em>项目.</p>
<div class="image">
<img src="../../WindowsBuildInstall.png" alt="WindowsBuildInstall.png">
</div>
<p class="startli">这将创建一个<em>安装</em>目录中的<em>建造</em>一个将所有构建的二进制文件收集到一个地方的程序.只有在你建立了两个<em>释放</em>和<em>调试</em>版本.</p>
<p class="startli">要测试您的构建,只需进入<code>Build/bin/Debug</code>或<code>Build/bin/Release</code>目录并启动两个应用程序,如<em>contours.exe</em>. 如果他们跑了,你就完了.否则,肯定出了大问题.在这种情况下,你应该联系我们的电话<a href="https://forum.opencv.org/">问答;论坛</a>. 如果一切正常<em>contours.exe</em>输出应类似于下图(如果使用Qt支持构建):</p>
<div class="image">
<img src="../../WindowsQtContoursOutput.png" alt="WindowsQtContoursOutput.png">
</div>
</li>
</ol>
<dl class="section note"><dt>Note</dt><dd>如果您使用GPU模块(CUDA库),请确保您也升级到GPU的最新驱动程序.在nvcuda.dll中包含无效项(或找不到)的错误消息主要是由旧的视频卡驱动程序引起的.要测试GPU(如果已构建),请运行<em>performance_gpu.exe</em>示例应用程序.</dd></dl>
<h1><a class="anchor" id="tutorial_windows_install_path"></a>设置OpenCV环境变量并将其添加到系统路径</h1>
<p>首先,我们设置一个环境变量来简化我们的工作.这将保存我们在项目中使用的OpenCV库的构建目录.启动命令窗口并输入:</p><div class="fragment"><div class="line">setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc11     (suggested for Visual Studio 2012 - 32 bit Windows)</div><div class="line">setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc11     (suggested for Visual Studio 2012 - 64 bit Windows)</div><div class="line"></div><div class="line">setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc12     (suggested for Visual Studio 2013 - 32 bit Windows)</div><div class="line">setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc12     (suggested for Visual Studio 2013 - 64 bit Windows)</div><div class="line"></div><div class="line">setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc14     (suggested for Visual Studio 2015 - 64 bit Windows)</div></div><!-- fragment --><p>这里的目录是您拥有OpenCV二进制文件的地方(<em>提取</em>或<em>构建</em>). 您可以使用不同的平台(例如x64而不是x86)或编译器类型,因此请替换适当的值.在这个文件夹中,应该有两个名为<em>库</em>和<em>箱子</em>. 如果您希望使设置计算机化,而不是用户化,那么应该添加-m.</p>
<p>如果您构建了静态库,那么就完成了.否则,您需要添加<em>箱子</em>文件夹路径到系统路径.这是因为您将以*“动态链接库”*(也称为<b>动态链接库</b>). 其中存储了OpenCV库包含的所有算法和信息.操作系统将只在运行时按需加载它们.然而,要做到这一点,操作系统需要知道它们在哪里.系统<b>路径</b>包含可在其中找到DLL的文件夹列表.将OpenCV库路径添加到这个文件中,操作系统就会知道如果他需要OpenCV二进制文件,应该去哪里查找.否则,您将需要在应用程序可执行文件旁边复制使用过的dll(<em>exe</em>)对于操作系统来说,这是非常不愉快的,如果你在许多项目上工作.要做到这一点,请重新启动<a href="http://www.redfernplace.com/software-projects/patheditor/">PathEditor</a>并添加以下新条目(在应用程序中单击鼠标右键以打开菜单):</p><div class="fragment"><div class="line">%OPENCV_DIR%\bin</div></div><!-- fragment --><div class="image">
<img src="../../PathEditorOpenCVInsertNew.png" alt="PathEditorOpenCVInsertNew.png">
</div>
<div class="image">
<img src="../../PathEditorOpenCVSetPath.png" alt="PathEditorOpenCVSetPath.png">
</div>
<p>把它保存到注册表,你就完成了.如果您更改了构建目录的位置,或者希望使用不同的构建来试用您的应用程序,那么您所需要做的就是通过<em>setx</em>命令窗口中的命令.</p>
<p>现在您可以使用继续阅读教程<a class="el" href="../../dd/d6e/tutorial_windows_visual_studio_opencv.html">How to build applications with OpenCV inside the "Microsoft Visual Studio"</a>部分.在那里,您将了解如何在MicrosoftVisualStudioIDE的帮助下在您自己的项目中使用OpenCV库.</p>
</div></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"><address class="footer"><small>Generated on Fri Apr 2 2021 11:36:37 for OpenCV by <a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen">
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
